package bean;

import javax.persistence.*;

import org.hibernate.annotations.Cascade;

import bean.vo.DireccionVO;

@Entity 
@Table( name = "direcciones" )
public class Direccion extends EntidadPersistente {
	
	@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH} )
	@Cascade( org.hibernate.annotations.CascadeType.SAVE_UPDATE)
	private Provincia provincia;
	@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH} )
	@Cascade( org.hibernate.annotations.CascadeType.SAVE_UPDATE )
	private Localidad localidad;
	private String calle;
	private Integer altura;
	private String codigoPostal;
	
	public Direccion () {}
	
	public Direccion (Provincia provincia, Localidad localidad, String calle, int altura, String codigoPostal){
		this.provincia = provincia;
		this.localidad = localidad;
		this.calle = calle;
		this.altura = altura;
		this.codigoPostal = codigoPostal;
	}
	
	public DireccionVO getVO() {
		DireccionVO vo = new DireccionVO();
		vo.setProvincia(provincia != null ? provincia.getVO() : null);
		vo.setLocalidad(localidad != null ? localidad.getVO() : null);
		vo.setCalle(calle);
		vo.setAltura(altura);
		vo.setCodigoPostal(codigoPostal);
		
		return vo;
	}
	
	public Provincia getProvincia() {
		return provincia;
	}
	
	public void setProvincia(Provincia provincia) {
		this.provincia = provincia;
	}
	
	public Localidad getLocalidad() {
		return localidad;
	}
	
	public void setLocalidad(Localidad localidad) {
		this.localidad = localidad;
	}
	
	public String getCalle() {
		return calle;
	}
	
	public void setCalle(String calle) {
		this.calle = calle;
	}
	
	public Integer getAltura() {
		return altura;
	}
	
	public void setAltura(Integer altura) {
		this.altura = altura;
	}
	
	public String getCodigoPostal() {
		return codigoPostal;
	}
	
	public void setCodigoPostal(String codigoPostal) {
		this.codigoPostal = codigoPostal;
	}
}
